Multiple user identity and bridge appearance

ABSTRACT

A call control system is provided that can determine the location of a person. From the location of the person, the call control system can temporarily associate a different phone with the person. A bridge appearance may then be changed to include the temporary association such that calls from the different phone show the person as a party to the call. Further, a routing algorithm for routing calls to phones within an enterprise may then be temporarily modified to route calls to the different phone for the person. Thus, a person may travel through the facilities of the enterprise and have important calls routed to the person wherever they may be.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of and priority under 35 U.S.C. §119(e) to U.S. Patent Application No. 61/235,838, filed Aug. 21, 2009, entitled “MOJO,” which is incorporated herein by reference in its entirety.

BACKGROUND

The need to stay in contact with other people has become extremely important for many business people. Cell phones can provide some assurance of being reached wherever a person may be. However, some people may not have the ability to call a person's cell phone because the number is unknown. Further, during working hours, a person may only be reached by the person's work phone. If that person leaves their desk, then important calls may be missed. For example, during teleconferences, a person may miss calls to the person's business phone. The time delay in returning the voicemail may cause problems. Thus, there is still a need to be in constant contact despite the prevalence of cell phone usage and the convenience of voicemail.

SUMMARY

It is with respect to the above issues and other problems that the embodiments presented herein were contemplated. Herein, a call control system is provided that can determine the location of a person. From the location of the person, the call control system can temporarily associate a different phone with the person. The routing algorithm for routing calls to phones within the enterprise may then be temporarily modified to route calls to the different phone. Thus, a person may travel through the facilities of the enterprise and have important calls routed to the person wherever they may be.

In embodiments, one or more mechanisms may be provided on a phone to identify that multiple users are in proximity to the phone and are, therefore, simultaneously using the phone. Examples of such mechanisms can include one or more of, but are not limited to, facial recognition technologies, SIM card detection (e.g., detection of cell phones or mobile communication devices of multiple users by establishing a Bluetooth™ or similar wireless association with the mobile device(s) of the users), manual user input that multiple users are present, or other presence awareness detection devices or methods.

Once the phone detects the presence of multiple users, the phone may then alter the bridge appearance of the phone or alter the identity of the phone used for caller identification and/or call set up. In some embodiments, the bridge appearance of the communication device may be altered to reflect the fact that multiple users are collaborating and simultaneously using a single communication device. This change can be leveraged during call set up, for example, if a call is originated by the shared communication device. The actual caller identification of the device may be altered to reflect the fact that the communication device is being shared (e.g., the caller identification may identify the caller as “user A and user B.”)

Alternatively, if the caller identification cannot be altered, the communication device may generate and send a second communication separate from the originated call. This second communication may be sent to the callee on one or more of the callee's devices and may not necessarily utilize the same communication medium as the original call. For example, if the caller identification cannot be altered, an email, text message, or Instant Message (IM) can be transmitted to the callee on one or more of the callee's communication devices. This second, possibly out-of-band, communication may indicate that the simultaneously incoming call has more than one caller. This second communication can alert the callee of all calling parties and answer the call appropriately.

Another possible way to leverage the altered bridge appearance is to allow a call routing mechanism to recognize that a communication device is being shared by two or more individuals and utilize this information during call routing to one or more of those individuals sharing the communication device. For example, assume that users A, B, and C are sharing a communication device that is owned and registered to user A. Users B and C have not actually registered user A's communication device as one of their devices. Therefore, under normal circumstances, a call routing module would never route a call to user A's communication device for users B or C. However, once the communication device recognizes that it is being shared by users A, B, and C, it may automatically alter the bridge appearance and notify the call routing mechanism that more users are temporarily registered with that device. This change allows the call routing device to alter the call routing rules to accommodate the migration of users B and C to a non-registered communication device. If the call routing device receives a call directed toward user B, the routing mechanism may apply the call routing algorithm to determine that the call is to be routed to user A's device.

The call routing mechanism may reside in each communication endpoint and, if that endpoint receives notification that its user has been temporarily registered with another communication endpoint not belonging to the user, then the user's “home” communication endpoint may forward any calls to the other endpoint at which the user is temporarily registered. In other embodiments, a separate communication may be sent to the user at the other user's communication endpoint indicating that a call is currently being received for that user at his/her “home” endpoint. The separate communication may also provide an option to the user asking whether the call should be forwarded or not.

The phrases “at least one”, “one or more”, and “and/or” are open-ended expressions that are both conjunctive and disjunctive in operation. For example, each of the expressions “at least one of A, B and C”, “at least one of A, B, or C”, “one or more of A, B, and C”, “one or more of A, B, or C” and “A, B, and/or C” means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B and C together.

The term “in communication with” as used herein refers to any coupling, connection, or interaction using electrical signals to exchange information or data, using any system, hardware, software, protocol, or format.

The term “a” or “an” entity refers to one or more of that entity. As such, the terms “a” (or “an”), “one or more” and “at least one” can be used interchangeably herein. It is also to be noted that the terms “comprising”, “including”, and “having” can be used interchangeably.

The term “automatic” and variations thereof, as used herein, refers to any process or operation done without material human input when the process or operation is performed. However, a process or operation can be automatic, even though performance of the process or operation uses material or immaterial human input, if the input is received before performance of the process or operation. Human input is deemed to be material if such input influences how the process or operation will be performed. Human input that consents to the performance of the process or operation is not deemed to be “material”.

The term “computer-readable medium” as used herein refers to any tangible storage that participates in providing instructions to a processor for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, NVRAM, or magnetic or optical disks. Volatile media includes dynamic memory, such as main memory. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, magneto-optical medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, a solid state medium like a memory card, any other memory chip or cartridge, or any other medium from which a computer can read. When the computer-readable media is configured as a database, it is to be understood that the database may be any type of database, such as relational, hierarchical, object-oriented, and/or the like. Accordingly, the embodiments are considered to include a tangible storage medium and prior art-recognized equivalents and successor media, in which the software implementations are stored.

The terms “determine”, “calculate” and “compute,” and variations thereof, as used herein, are used interchangeably and include any type of methodology, process, mathematical operation or technique.

The term “module” as used herein refers to any known or later developed hardware, software, firmware, artificial intelligence, fuzzy logic, or combination of hardware and software that is capable of performing the functionality associated with that element. Also, while the embodiments are described in terms of examples, it should be appreciated that individual aspects of the embodiments can be separately claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is described in conjunction with the appended figures:

FIG. 1 is a block diagram of an embodiment of a calling system that can reroute calls based on the presence information of a person;

FIG. 2 is a block diagram of an embodiment of a calling server;

FIG. 3 is a block diagram of a data structure that is stored, sent, or received by one or more calling servers for routing calls;

FIGS. 4A-4D are embodiments of user interface displays showing modified bridge appearance information and call routing changes;

FIG. 5 is a flow diagram of an embodiment of a process for changing the bridge appearance;

FIG. 6 is a flow diagram of an embodiment of a process for routing a call based on presence information;

FIG. 7 is a block diagram of an embodiment of a computer system environment in which the systems and methods may be executed; and

FIG. 8 is a block diagram of a computer system in which the systems and methods may be executed.

In the appended figures, similar components and/or features may have the same reference label. Further, various components of the same type may be distinguished by following the reference label by a letter that distinguishes among the similar components. If only the first reference label is used in the specification, the description is applicable to any one of the similar components having the same first reference label irrespective of the second reference label.

DETAILED DESCRIPTION

The ensuing description provides embodiments only, and is not intended to limit the scope, applicability, or configuration of the embodiments. Rather, the ensuing description will provide those skilled in the art with an enabling description for implementing the embodiments. It being understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the appended claims.

An embodiment of a system 100 for administering phone calls is shown in FIG. 1. The several components of the system 100 may be hardware, software, or a combination of hardware and software. Descriptions of the computer system environment and the computer systems which may embody the several components of system 100 are described in conjunction with FIGS. 7 and 8. As such, a functional description of the several components of system 100 shall follow.

In embodiments, the system comprises two or more servers 106 and/or 110 operable to administer calls and in communication through network 108. Each server 106 and/or 110 may manage the phone calls for communication devices 102, 114, 116, and/or 120. Thus, each server 106 and/or 110 can administer calls for one or more communication devices including one or more of, but not limited to, session initiation protocol (SIP) phones, internet protocol (IP) phones, cellular phones, computer devices, mobile devices, etc. A communication device 102, 114, 116, and/or 120 may be part of an organization network or enterprise network. Typically, the communication devices 102, 114, 116, and/or 120 are a collection of Internet Protocol (IP) addresses and/or telephone numbers. There may be more of fewer communication devices than those shown, as represented by ellipses 118. The networks 104, 108, and/or 112 can be any trusted or untrusted network, as discussed in conjunction with FIGS. 9 and 10, that allow for the communication of data between the communications devices 102, 114, 116, and/or 120 and/or the servers 106 and/or 110.

The system 100 manages phone calls for one or more IP addresses associated with one or more communication devices 102, 114, 116, and/or 120. As an example, a phone call may be requested from a communication device 102. The request may be sent to the communication server A 106 over the network 104. The call is then sent to communication server B 110. The call can be destined for communication device 2 114. However, communication server B 110 may be able to send the call to communication device 3 116 under certain circumstances.

The communication devices 102, 114, 116, and/or 120 may also be associated with one or persons. The associations may be stored in a personnel database 122. The personnel database 122 can be any data structure or database as described in conjunction with FIGS. 7 and 8. Generally, the personnel database 122 is operable to store information about one or more people associated with an enterprise and/or one or more communication devices 102, 114, 116, and/or 120.

An embodiment of a call/communication server 200 is shown in FIG. 2. The call/communication server 200 can be the same as or similar to servers 106 and/or 110 (FIG. 1). In embodiments, the call/communication server 200 is a computer system as described in conjunction with FIGS. 7 and 8. The call/communication server 200 can have one or more components, which may execute as computer modules. The call/communication server 200 can include one or more of, but is not limited to, a call router 202 and/or a control table 204.

The call router 202 administers or control calls for the call/communication server 200. The call router 202 receives requests for phone calls for an IP address or telephone number from a communication device 102, 114, 116, and/or 120 (FIG. 1). The call router 202 may route the call as required to complete the call. However, in embodiments, the call router 202 determines if a person associated with the communication device is in another location. If the person is in a different location, the call may be rerouted by the call router 202 to a different communication device.

The control table 204 can store control information that allows the call router 202 to determine where to send a call. An embodiment of the control table is shown in FIG. 3. Generally, every server 106 and/or 110 includes a control table 204. The call router 202 and control table 204 allows each server 106 and/or 110 to separately manage call routing within the enterprise with which the server 106 and/or 110 is associated.

The call/communication server 200 can also communicate with a presence system 206. The presence system 206 is operable to receive and/or provide geo-location and/or presence information to the call/communication server 200. The presence system 206 may be part of and included with the call/communication server 200 or may be a third-party service that provides geo-location information. The presence system 206 can receive geo-location information from one or more sources. For example, the presence system 206 can receive geo-location information from a GPS device embedded within a communication device used and carried by a person. In other embodiments, the presence system 206 can receive geo-location information from a radio frequency identifier (RFID) reader that is able to receive signals from an RFID card carried by a person. One or more other sources may be able to generally identify a location for a person and provide the information to the presence system 206. The geo-location information may then be integrated with the identity of the person, and sent by the presence system 206 to the call/communication server 200. As such, the call/communication Server 200 can receive geo-location information for one or more persons associated with the enterprise. An additional source of geo-location information can include social media networks (e.g., Twitter bundles location information with entries posted by the user). The presence system 206 can monitor such social media sources and extract the location information. Likewise, it may be possible to acquire location information via other services, such as, Google Latitude.

Providing presence information and determining presence can be as described in U.S. Pat. No. 7,171,473, entitled “System using HTTP protocol for maintaining and updating on-line presence information of new user in user table and group table,” issued Jan. 30, 2007, and U.S. Patent Publication No. 20070067443, entitled “Presence-based hybrid peer-to-peer communications,” filed Sep. 30, 2005, which are incorporated herein in their entirety for all that the patents teach. Presence information and the determination of presence can be as further described in the Network Working Group Request for Comments: 2778, authored by M. Day, J. Rosenberg, and H. Sugano, published by the Internet Engineering Task Force on February 2000, and entitled “A Model for Presence and Instant Messaging,” which is incorporated herein in the document's entirety for all that the document teaches.

The call/communication server 200 can either further include or communicate with a device information database 208. The device information database 208 can be any data structure or database as described in conjunction with FIGS. 7 and 8. Generally, the device information database 208 is operable to store information about the communication devices 102, 114, 116, and/or 120. This information can include one or more of, but is not limited to, the IP address or phone number for the communication devices 102, 114, 116, and/or 120, the location of the communication devices 102, 114, 116, and/or 120, the person(s) associated with the communication devices 102, 114, 116, and/or 120, etc. This device information is provided to the call/communication server 200 to route calls to the communication devices 102, 114, 116, and/or 120.

Further, the call/communication server 200 can either further include or communicate with a personnel database 122. The personnel database 122 can be any data structure or database as described in conjunction with FIGS. 7 and 8. Generally, the personnel database 122 is operable to store information about one or more people associated with an enterprise and/or one or more communication devices 102, 114, 116, and/or 120. The information about the people can include one or more of, but is not limited to, the name of the person, one or more identifiers for the person, an RFID identity for the person, one or more phone numbers for one or more devices associated with the person, the person's “home” communication device, the person's location, etc.

An embodiment of a data structure 300, referred to also as control information 300, embodying device and/or personnel information that may be included in a control table 204 (FIG. 2) and stored or read from the personnel database 122 (FIG. 1) and/or the device information database 208 (FIG. 2) is shown in FIG. 3. The control information 300 can be composed of two or more data segments 302 through 314. There may be more or fewer portions than those shown in FIG. 3, as represented by ellipses 316. Some of the control information 300 may be static having a stable value. However, other control information 300 is dynamic and changes. The dynamic information may be computed periodically (for example, every day, every hour, etc.) or may be computed in response to an event (for example, a new call is received, a person is determined to be at a new location, etc.).

The device identifier segment 302 can include an identifier for each of the communication devices 102, 114, 116, and/or 120. The identifiers can be any unique identifier which can identify the communication device with respect to all other communication devices. For example, the device identifier can be a globally unique identifier (GUID), an alphanumeric identifier, an IP address, or some other type of address or identifier.

A location segment 304 can store a location for the communication device. The location is a physical location of where the device may be located. For example, a telephone in a conference room may have a location of the room number for the conference room in which the telephone is located. The location segment 304 can contain any information that may identify the location, which can include one or more of, but is not limited to, an address, a room number, a building number, etc.

A personal identifier segment 306 can include an identifier for a person that is associated with the device identified in the device identifier segment 302. As with the device identifier, the person identifier can be any type of unique identifier for that person that identifies that person uniquely with respect to all people within the enterprise. The person identifier can be a name, social security number, a GUID, or some other type of identifier.

A person location segment 308 can store the location of a person. In an embodiment, the person location segment 308 can include a “home location,” which is an office to which the person is assigned, or some other location in which the person is normally located. The person location segment 308 cab also include a “dynamic location,” which is a location at which the person is currently located. For example, the person's office may be room 100 b, but the person may be having a conference in conference room 200 d. Therefore, the person's home location can be the office 100 b, but the person's dynamic or present location can be the conference room 200 d. As such, the personal location segment 308 can identify the location of the person dynamically at any time.

The call forward address segment 310 can include an address for a communication device located in the vicinity of the person. Thus, if the person's location as represented by the personal location segment 308 changes and does not match their home location, a communication device located at the present location may be determined. After determining the communication device in the vicinity of the person's current location, the communication device's address can be determined. This device address may then be dynamically stored into the call forwards address segment 310 for changing the bridge appearance for that communication device. Thus, the communication device having the device identifier segment stored in the address in the call forward address segment 310 can appear to others as having more than one person associated with that device. In other embodiments, the data structure 300 includes a second person identifier segment with the same person identifier but a temporary device identifier. This temporary data structure can temporarily change the association between a person and a device.

The display information segment 312 can store information about a display on a communication device either at a local and/or a far end of a communication bridge. A local end of a communication bride is the device upon which a call is made. The far end is the device upon which the call is received. However, the far and near ends change depending on the perspective of the callers. The display information can include the identities of the people on a communication. Further, display information can include other information that may be pertinent or helpful to the people on the communication. For example, the display information may include one or more of, but is not limited to, a local time, a time at the far end, the names of the people who are participating in the communication, the phone numbers of the people on the call, one or more other items of identifying information for the people on the call (e.g., an email address, an address, a photograph, etc.), or other information.

A forward call indicator segment 314 can include a user set indication of whether to automatically forward calls to a new communication device if the person is not at their home location. Thus, the forward call indicator segment 314 can store a simple flag or binary indication of whether calls should be forwarded. In embodiments, the forward call indicator segment 314 is optional as the system 100 may automatically forward calls regardless of user input. However, in some embodiments, the user can control whether to automatically forward calls by setting the forward call indicator.

Embodiments of one or more user interfaces that may be displayed on a communication device 102, 114, 116, and/or 120 are shown in FIGS. 4A through 4D. A user interface can include one or more displays that provide information to a user. Further, the user interface can provide the ability to accept input from a user by selection of items in the display using user interface devices or other types of device for accepting user input. In embodiments shown in FIG. 4A, the user interface 400 shows participants in a call at both a far end and a near end. The far end display is in section 402, and the near end is in section 404.

When a user is involved in a call with one or more other users, the collection of users may be associated with a communication device. The association to the communication device changes the bridge appearance for the communication device. As such, the two or more users associated with the communication device may be displayed together as participants in the conference or call. For example, users are shown in displays 406 a, 406 b, and 406 c as being associated with the communication device having a phone number displayed in 408. The user interface can also include a display of information about the persons associated with the communication device. For example, a picture of the person may be shown, an address or other contact information may be shown, or other information pertinent to the person or the communication may be shown. This displayed information allows the parties to subsequently communicate as a follow-up to the meeting even if the phone numbers are not known at the time of the meeting. In embodiments shown in user interface 400, both the far end and the near end communication device information is shown, such that, the one or more persons associated with the far end or near end communication devices, such as communication device 102, are shown in section 402. The persons associated with the communication device, such as the communication device 114, at the near end, are shown in section 404.

Another display of section 402 is shown in FIG. 4B. Here, this display may be the only display at the near end communication device for the call at the far end. Thus, the near end communication device sees the participants at the far end, but not the local participants. The user interface 400 shows one or more user interface sections that provide information to the user. For example, in display 406 a, there is a name for the person shown in section 414, an email address for the person shown in section 416, and the phone number of the person shown in 418.

Further, it may be possible for the user interface to display who is talking at any one time. For example, the person shown in 406 b may be expanded in section 410 to show that that person is talking at the current time. In other embodiments, some other indicia are provided to show who is talking during any one time during the communication. For example, a visual indicia, such as a highlight shown in 412, may be shown around a person who may be communicating during the communication session. Other indicia may include audible signals or physical signals such as vibrations that may be associated with a certain person. These displays may allow the person at the near end to become acquainted with who is talking by their voice and become aware of the person that they may need to contact in subsequent communications.

Further, the display of the persons in section 402 may have a spatial relationship. For example, the far end communication device 102 may be able to determine a relative location around the communication device for each of the persons displayed in user interface 400. Thus, the people on the left side of section 402 would be to the left of the communication device 102 and the people to the right side of the user interface device could be to the right side of the communication device 102. This determination of spatial location may be through a series of microphones, an array of microphones, or a determination of certain speech characteristics when the person is talking. The spatial arrangement may then be displayed in section 402 and may also be presented as dynamic audio wherein two or more speakers can produce sounds such that it appears that the person is seated or speaking at the left or right hand side of the communication device.

An embodiment of the near end section 404 is shown in FIG. 4C. Here, the members that are associated with the near end communication device 114, are shown and may be shown in similar fashion as described in conjunction with FIG. 4B. In changing the bridge appearance, a phone call that is destined for a person's home communication device, may be rerouted to the communication device upon which the conference or communication is being held. For example, a phone call for Mr. Payne, shown in user interface portion 420, may be sent to his home phone number of 444-444-1112 and be rerouted to the communication device having a conference number 444-444-2222.

When the call is routed to the communication device shown in section 404, the communication device can provide an alert or notice to the person of the call. The alert can be some type of indicia, whether visual, audio, and/or physical. For example, in the section 404, the image of Mr. Payne is highlighted by enlarging the picture in user interface portion 420. The highlighted portion can also provide information about the incoming call. For example, the listing of the calling phone number is shown in user interface section 422. The user interface may provide some selectable interface devices for the person to determine how to handle the call. For example, the “route to this phone?” device 424 or the “reroute?” device 426 can help a user determine how to handle the call. Other indicia might include a separate ring, buzzing, or vibration of the communication device to alert one or more of the people that there is a communication incoming that was originally bound for a home communication device.

An embodiment of a second user interface display 428, which may be provided if the user selects to reroute the call by selecting device 426, is shown in FIG. 4D. The user interface 428 provides a field 430 to which the user can enter a phone number using the keys on the telephone or some other user interface device. If the user desires to reroute the phone call to that phone number, the user can select the “reroute to number” user interface device 432 to input the desire to reroute the call. In this way, the user may send the call to a cell phone and answer the call in real time. In further embodiments, there may be a second user interface device 434 into which the user can enter input to send the call to voicemail. In this case, the voice call is then routed to voicemail to allow the caller to leave a message for the user. Other types of user interface devices may be provided to handle the call in different manners in user interface 428.

An embodiment of a method 500, from the perspective of the call/communication server 200, for determining the bridge appearance for a communication device is shown in FIG. 5. Generally, the method 500 begins with a start operation 502 and terminates with an end operation 518. While a general order for the steps of the method 500 are shown in FIG. 5, the method 500 can include more or fewer steps or arrange the order of the steps differently than those shown in FIG. 5. The method 500 can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium. Hereinafter, the method 500 shall be explained with reference to the systems, components, modules, data structures, user interfaces, etc. described in conjunction with FIGS. 1-4D.

A call/communication server 200 receives presence information for at least one person associated with at least one communication device, in step 504. The presence information may be provided by a presence system 206 and include information about the location of a person associated with an enterprise. That person may have a home communication device and be associated with that device, such as, communication device 2 114. The presence information may be provided periodically, such as, every minute, every ten minutes, etc. In other embodiments, the presence information may be received upon the occurrence of the event, such as, the person being determined to be in a separate location.

The call/communication server 200 may then determine a second communication device located near the person based on the presence information, in step 506. The call/communication server 200 can access device information in the device information database 208 or personnel information in the personnel database 122 to determine a communication device that is in the same or approximate location as the person. For example, the call/communication server 200 can access the data structure 300 and attempt to find a location in the location segment 304 that is the same or similar to the location of the person associated with the received presence information. If there is a location that is substantially near the person associated with the presence information, the call/communication server 200 can access the device identifier in the device identifier segment 302.

A call/communication server 200 can then change the bridge appearance to temporarily associate the person with the second communication device, in step 508. Call/communication server 200 can determine that a second communication device, for example, communication device 3 116, is in a location near the person's current location. The call/communication server 200 can retrieve a device identifier from the device identifier segment 302 for communication device 3 116. Then, the call/communication server 200 can retrieve the information for communication device 3 116 from the device information database 208. Either in of device information database 208 or in a control table 204, the call/communication server 200 can place the device identifier into the call forward address segment 310 for the second communication device. In alternative embodiments, the device identifier is placed into the data structure 300 within the personnel database 122.

Then, upon receiving a call at the person's home communication device, for example, communication device 2 114, the call/communication server 200 can access data structure 300 and determine the person associated with that communication device in segment in the person identifier segment 306. Then, the call/communication server 200 can access the data structure 300 in the personnel database 122 to determine the call forward address from the call forward address segment 310 associated with that person. Regardless, the call/communication server 200 can change the bridge appearance by storing the call forward address in the call forward address segment 310 for the user, the home communication device, and/or the second communication device.

The change bridge appearance may then be provided by the call/communication server 200 to the second communication device 116, in step 510. In embodiments, the second communication device 116 is engaged in a communication session. In a communication session, there may be two or more users using the communication device 116. As such, the bridge appearance can show the two or more people associated with the phone. Therefore, a display, such as that shown in section 404 of FIG. 4C, may be displayed on the second communication device 116.

The call communication server can route the communication session with the two or more users using communication device 3 116 to a third communication device 102, in step 512. Thus, the call communication server can establish a communication session between communication device 116, through the network 112 and network 108, to communication server 106. Communication server 106 can then route the call through the network 104 to the third communication device 102. Thus, the communication between the second communication device 116 and the third communication device 102 is established.

In establishing the communication session, the communication server 200 can provide the changed bridge appearance to the third communication device 102, in step 514. Here, the call/communication server 200 can provide information, e.g., user identifiers or other information, which may be stored in display information segment 212 at third communication device 102. The third communication device 102 can provide a user interface, such as, user interface 400 shown in FIG. 4B. Here, the communication device 116 is shown as having several people associated with it. These people may then be displayed in the interface of third communication device 102.

In alternative embodiments, the changed bridge appearance may be provided to third communication device 102 or to another communication device associated with users at the far end through an alternate communication media. For example, the changed bridge appearance may be provided through an email, an instant message, or a phone call to an alternative communication device. The message can state states that there are two or more parties associated with the communication device 116 and engaged in the current communication session.

During the communication session between the communication device 116 and the communication device 102, a phone call may be received from another party to one of the parties associated with communication device 116. The call/communication server 200 can receive this call. The call/communication server 200 can then look up the device and device identifier in the device identifier segment 302 of the device information database 208. Upon determining that the device identifier is in data structure 300, the call/communication server 200 can read the device information from the call forward address segment 310. In embodiments, this device information is stored in the call control table 204. The call router 202 may then read that information from the control table 204 to reroute the call. However, in this situation, the call router 202 reroutes the call to the second communication device 116 that is temporarily associated with the person receiving the call. The call communication server can then provide indicia at the second communication device 116 of the rerouted call for that person, in step 516. The indicia may be a display as shown in FIG. 4C. In other embodiments, the indicia can be separate physical or audible indicia that alert the person of the call.

An embodiment of a method 600, viewed from the perspective of a call/communication server 200, for rerouting a call based on a changed bridge appearance is shown in FIG. 6. Generally, the method 600 begins with a start operation 602 and terminates with an end operation 618. While a general order for the steps of the method 600 are shown in FIG. 6, the method 600 can include more or fewer steps or arrange the order of the steps differently than those shown in FIG. 6. The method 600 can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium. Hereinafter, the method 600 shall be explained with reference to the systems, components, modules, data structures, user interfaces, etc. described in conjunction with FIGS. 1-4D.

A call/communication server 200 can receive presence information for a first person from a presence system 206, in step 604. The presence information can include a location for the first person. The call/communication server 200 can determine a location for the first person, in step 606. This determined location can be a location within an enterprise building, for example, a room or some other location where the person may be. The location may be determined by scanning an RFID card or by locating a mobile device associated with that person.

The call/communication server 200 can temporarily associate a second communication device with the first person, in step 608. The call/communication server 200 can determine that the second communication device is in the same current location as the first person. To determine that the second communication device is in the same location, the call/communication server 200 can access device information in device information database 208 to match the location of the first person with a location stored in the location segment 304 of the data structure 300 associated with the second communication device. The device identifier in the device identifier segment 302 is then read out and stored in a second data structure within the personnel database 122. The device identifier for the second communication device can be stored in the call forward address segment 310. Further, the data structure 300 can be changed to add an identifier for the first person into the person identifier segment 306. As such, the data structure 300 associated with the second communication device may include two or more person identifiers in the person identifier segment 306. In this way, the call/communication server 200 changes the bridge appearance of the second communication device to reflect temporary association of the first person with the second communication device, in step 610.

The first person and one or more other parties may then make a communication using a second communication device. The communication can include the first person and a second person as participants within the communication. At some point during the communication, the first person may receive a call at a first communication device. The first communication device can be the home device and normally associated with the first person. Thus, the call router 202 can receive a communication directed to the person's first communication device. However the call router may then access a control table 204 that contains information from the device information database 208 or the personnel database 122 showing that the first person is temporarily associated with the second communication device. In accessing the information in the control table 204, the call router 202 can reroute the call to the second communication device, in step 614.

In rerouting a call, the call router provides an alert to the first person of the call at the second communication device, in step 616. The alert can be any type of indicia that indicates that a call has been rerouted from a first communication device to a second communication device. In an embodiment, the alert is visual indicia as shown in FIG. 4C. There, a visual indication within the section 404 shows that the first person received a call in user interface portion 420. The user may then interact with the second communication device by selecting user interface device 424 or 426 to indicate a preference for how the rerouted call should be handled.

If the user selects user interface device 426, a second user interface 428 is shown in FIG. 4D and may be provided for the user first person to provide further information on how to route the call. In other embodiments, the first person may indicate, by selecting user interface device 424, to accept the call at the segment communication device. This selection may occur and supersede the first communication session if the call is an emergency or is some other matter that needs immediate attention by the first person. Other alerts may be provided, such as a separate message to another device associated with the first person, e.g., a cell phone, that may receive an instant message, an email, or a separate phone call. Other alerts may include a separate ring tone than the second communication device or a vibration of the second communication device. As such, the changed bridge appearance can cause a rerouting of calls through the call router 202 from a first communication device to a second communication device.

Alternatives exist for the system 100. For example, the rerouting of calls may occur within the communication devices 114, 116, and/or 120. As such, the rerouting and changed bridge appearance functionally, call router, and/or call/communication server 200 may exist within the communication devices. Thus, when a call communication server interacts with the communication device, the communication device can provide the changed bridge appearance for provision to the far end in a communication session. Further, the communication device may provide the call server information to reroute calls.

FIG. 7 illustrates a block diagram of a computing environment 700 that may function in system 100 to route calls. The system 700 includes one or more user computers 705, 710, and 715. The user computers 705, 710, and 715 may be general purpose personal computers (including, merely by way of example, personal computers and/or laptop computers running various versions of Microsoft Corp.'s Windows™ and/or Apple Corp.'s Macintosh™ operating systems) and/or workstation computers running any of a variety of commercially-available UNIX™ or UNIX-like operating systems. These user computers 705, 710, 715 may also have any of a variety of applications, including for example, database client and/or server applications, and web browser applications. Alternatively, the user computers 705, 710, and 715 may be any other electronic device, such as a thin-client computer, Internet-enabled mobile telephone, and/or personal digital assistant, capable of communicating via a network (e.g., the network 720 described below) and/or displaying and navigating web pages or other types of electronic documents. Although the exemplary system 700 is shown with three user computers, any number of user computers may be supported.

System 700 further includes a network 720. The network 720 can be any type of network familiar to those skilled in the art that can support data communications using any of a variety of commercially-available protocols, including, without limitation, TCP/IP, SNA, IPX, AppleTalk, and the like. Merely by way of example, the network 720 maybe a local area network (“LAN”), such as an Ethernet network, a Token-Ring network and/or the like; a wide-area network; a virtual network, including without limitation a virtual private network (“VPN”); the Internet; an intranet; an extranet; a public switched telephone network (“PSTN”); an infra-red network; a wireless network (e.g., a network operating under any of the IEEE 802.11 suite of protocols, the Bluetooth™ protocol known in the art, and/or any other wireless protocol); and/or any combination of these and/or other networks.

The system 700 may also include one or more server computers 725, 730. One server may be a web server 725, which may be used to process requests for web pages or other electronic documents from user computers 705, 710, and 715. The web server can be running an operating system including any of those discussed above, as well as any commercially-available server operating systems. The web server 725 can also run a variety of server applications, including HTTP servers, FTP servers, CGI servers, database servers, Java servers, and the like. In some instances, the web server 725 may publish operations available operations as one or more web services.

The system 700 may also include one or more file and or/application servers 730, which can, in addition to an operating system, include one or more applications accessible by a client running on one or more of the user computers 705, 710, 715. The server(s) 730 may be one or more general purpose computers capable of executing programs or scripts in response to the user computers 705, 710 and 715. As one example, the server may execute one or more web applications. The web application may be implemented as one or more scripts or programs written in any programming language, such as Java™, C, C#™ or C++, and/or any scripting language, such as Perl, Python, or TCL, as well as combinations of any programming/scripting languages. The application server(s) 730 may also include database servers, including without limitation those commercially available from Oracle, Microsoft, Sybase™, IBM™ and the like, which can process requests from database clients running on a user computer 705.

The web pages created by the web application server 730 may be forwarded to a user computer 705 via a web server 725. Similarly, the web server 725 may be able to receive web page requests, web services invocations, and/or input data from a user computer 705 and can forward the web page requests and/or input data to the web application server 730. In further embodiments, the server 730 may function as a file server. Although for ease of description, FIG. 7 illustrates a separate web server 725 and file/application server 730, those skilled in the art will recognize that the functions described with respect to servers 725, 730 may be performed by a single server and/or a plurality of specialized servers, depending on implementation-specific needs and parameters.

The system 700 may also include a database 735. The database 735 may reside in a variety of locations. By way of example, database 735 may reside on a storage medium local to (and/or resident in) one or more of the computers 705, 710, 715, 725, 730. Alternatively, it may be remote from any or all of the computers 705, 710, 715, 725, 730, and in communication (e.g., via the network 720) with one or more of these. In a particular set of embodiments, the database 735 may reside in a storage-area network (“SAN”) familiar to those skilled in the art. Similarly, any necessary files for performing the functions attributed to the computers 705, 710, 715, 725, 730 may be stored locally on the respective computer and/or remotely, as appropriate. In one set of embodiments, the database 735 may be a relational database, such as Oracle 10i™, that is adapted to store, update, and retrieve data in response to SQL-formatted commands.

FIG. 8 illustrates one embodiment of a computer system 800 upon which servers other systems described herein may be deployed or executed. The computer system 800 is shown comprising hardware elements that may be electrically coupled via a bus 855. The hardware elements may include one or more central processing units (CPUs) 805; one or more input devices 810 (e.g., a mouse, a keyboard, etc.); and one or more output devices 815 (e.g., a display device, a printer, etc.). The computer system 800 may also include one or more storage device 820. By way of example, storage device(s) 820 may be disk drives, optical storage devices, solid-state storage device such as a random access memory (“RAM”) and/or a read-only memory (“ROM”), which can be programmable, flash-updateable and/or the like.

The computer system 800 may additionally include a computer-readable storage media reader 825; a communications system 830 (e.g., a modem, a network card (wireless or wired), an infra-red communication device, etc.); and working memory 840, which may include RAM and ROM devices as described above. In some embodiments, the computer system 800 may also include a processing acceleration unit 835, which can include a DSP, a special-purpose processor and/or the like.

The computer-readable storage media reader 825 can further be connected to a computer-readable storage medium, together (and, optionally, in combination with storage device(s) 820) comprehensively representing remote, local, fixed, and/or removable storage devices plus storage media for temporarily and/or more permanently containing computer-readable information. The communications system 830 may permit data to be exchanged with the network 820 and/or any other computer described above with respect to the system 800. Moreover, as disclosed herein, the term “storage medium” may represent one or more devices for storing data, including read only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information.

The computer system 800 may also comprise software elements, shown as being currently located within a working memory 840, including an operating system 845 and/or other code 850, such as program code implementing the servers described herein. It should be appreciated that alternate embodiments of a computer system 800 may have numerous variations from that described above. For example, customized hardware might also be used and/or particular elements might be implemented in hardware, software (including portable software, such as applets), or both. Further, connection to other computing devices such as network input/output devices may be employed.

In the foregoing description, for the purposes of illustration, methods were described in a particular order. It should be appreciated that in alternate embodiments, the methods may be performed in a different order than that described. It should also be appreciated that the methods described above may be performed by hardware components or may be embodied in sequences of machine-executable instructions, which may be used to cause a machine, such as a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the methods. These machine-executable instructions may be stored on one or more machine readable mediums, such as CD-ROMs or other types of optical disks, floppy diskettes, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, or other types of machine-readable mediums suitable for storing electronic instructions. Alternatively, the methods may be performed by a combination of hardware and software.

Specific details were given in the description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.

Also, it is noted that the embodiments were described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed, but could have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.

Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine readable medium such as storage medium. A processor(s) may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.

While illustrative embodiments have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed, and that the appended claims are intended to be construed to include such variations, except as limited by the prior art. 

1. A method for administering telephone calls, comprising: receiving a call directed to a first communication device, the first communication device associated with a first person; receiving presence information for the first person; based on the presence information, temporarily associating the first person with a second communication device; and based on the temporary association, automatically rerouting the call to the second communication device.
 2. The method as defined in claim 1, wherein the first person is conducting a communication session on the second communication device.
 3. The method as defined in claim 2, further comprising: alerting the first person at the second communication device of the call.
 4. The method as defined in claim 3, wherein the alert provides an indicia of the call at the second communication device.
 5. The method as defined in claim 4, wherein the indicia includes at least one of a visual change to a display of the second communication device, wherein the change indicates the call is for the first person, an audio signal provided for the first person, a physical signal provided to the first person, a combination of two of a visual change, an audio signal, and a physical signal provided to the first person.
 6. The method as defined in claim 3, wherein the alert is provided on a third communication device.
 7. The method as defined in claim 6, wherein the alert to the third communication device is one of an email, an instant message, another phone call, or a voicemail.
 8. The method as defined in claim 1, wherein the second communication device is associated with a second person.
 9. The method as defined in claim 9, wherein both the first person and the second person are associated with the second communication device for a period of time.
 10. The method as defined in claim 1, further comprising: modifying data associated with the first person, wherein the data indicates which communication device is associated with the first person, and wherein the data temporarily indicates, based on the presence information, that the first person is associated with the second communication device; and based on the modified data, altering a routing algorithm to reroute the call to the second communication device.
 11. A system for administering calls comprising: a first communication device associated with a first person; a second communication device associated with a second person; a presence system operable to provide presence information about the first and second persons; a call server in communication with the first and second communication devices and the presence system, the call server operable to: receive presence information indicating that the first person is located near the second communication device; temporarily change a bridge appearance of the second communication device to shown that the first and second persons are associated with the second communication device; receive a call to the first person; and based on the temporary bridge appearance, reroute the call to the first person at the second communication device.
 12. The server as defined in claim 11, further comprising a device information database operable to store the temporary association of the first person with the second communication device.
 13. The server as defined in claim 11, further comprising a personnel information database operable to store the temporary association of the first person with the second communication device.
 14. The server as defined in claim 11, wherein the call server comprises: a call router operable to: receive the call to the first person; determine that the first person is temporarily associated with the second communication device; reroute the call to the second communication device; a control table operable to: store the temporary bridge appearance; and provide the temporary bridge appearance to the call router for routing of the call.
 15. The server as defined in claim 14, wherein the control table includes a data structure comprising: a person identifier segment operable to store an identity of the first person; a device identifier segment operable to store an identity of the first communication device associated with the first person; and a call forward address segment operable to store temporarily an address for the second communication device.
 16. A computer program product including computer executable instructions stored onto a tangible computer readable medium which, when executed by a processor of a computer, causes the computer to perform a method for changing the bridge appearance of a communication device, the instructions comprising: instructions to receive presence information for a first person and a second person; based on the presence information, instructions to change the bridge appearance of a first communication device to temporarily associated both the first person and second person with the first communication device; and based on the temporary association, instructions to provide an appearance to a second communication device that shows the first and second person associated with the first communication device.
 17. The computer program product as defined in claim 16, wherein the temporary association includes spatial information and wherein the appearance includes a spatial display showing a relative position of the first person and second person in relation to the communication device.
 18. The computer program product as defined in claim 17, wherein when the first person is speaking, the appearance including a visual indicia of the first person speaking.
 19. The computer program product as defined in claim 18, wherein the appearance including temporal information about a locale for the first communication device.
 20. The computer program product as defined in claim 16, further comprising: instructions to receive a call for the first person on a second communication device while the first person is temporarily associated with the first communication device; based on the bridge appearance, instructions to reroute the call to the first communication device; and instructions to provide an indicia of the call at the first communication device for the first person. 